package com.um.jdy.rpc.entity;

import com.alibaba.fastjson.annotation.JSONField;
import lombok.Data;

import java.io.Serializable;
import java.util.List;

/**
 * 推送充电订单信息 请求参数
 * 接口描述：/notification_charge_order_info，小桔侧实现，运营商侧调用。结束充电后进行调用，需在结束充电后30s内回调。
 */
@Data
public class CecChargeOrderInfo implements Serializable {

    /**
     * 充电订单号 格式:运营商ID+唯一编号 27字符
     */
    @JSONField(name = "StartChargeSeq")
    String startChargeSeq;

    /**
     * 充电设备接口编码
     */
    @JSONField(name = "ConnectorID")
    String connectorID;

    /**
     * 开始充电时间 格式:yyyy-MM—dd HH:mm:ss
     */
    @JSONField(name = "StartTime")
    String startTime;

    /**
     * 本次采样时间 格式:yyyy-MM—dd HH:mm:ss
     */
    @JSONField(name = "EndTime")
    String endTime;

    /**
     * 累计充电量 单位：度，小数点后2位
     */
    @JSONField(name = "TotalPower", format = "0.00")
    double totalPower;

    /**
     * 总电费 单位：元，小数点后2位
     */
    @JSONField(name = "TotalElecMoney", format = "0.00")
    double totalElecMoney;

    /**
     * 总服务费 单位：元，小数点后2位
     */
    @JSONField(name = "TotalSeviceMoney", format = "0.00")
    double totalSeviceMoney;

    /**
     * 累计总金额 单位：元，小数点后2位
     */
    @JSONField(name = "TotalMoney", format = "0.00")
    double totalMoney;

    /**
     * 充电结束原因 0：用户手动停止充电；1：客户归属地运营商平台停止充电；2：BMS停止充电；3：充电机设备故障；4：连接器互换；5：卡剩余不足；6〜99：暂未使用
     */
    @JSONField(name = "StopReason")
    Integer stopReason;

    /**
     * （非必填）时段数N 范围：0~32
     */
    @JSONField(name = "SumPeriod")
    Integer sumPeriod;

    /**
     * 充电明细信息 单时间段充电明细信息
     */
    @JSONField(name = "ChargeDetails")
    List<CecChargeDetails> chargeDetails;

}
